package com.ktkj.init.utils;

import java.io.File;


/**
 * The type File utils.
 *
 * @author :yanlixiong
 * @date :2021-11-15 13:32:46
 */
public class FileUtils {

    /**
     * Gets path.
     *
     * @param prefix the prefix
     * @param model  the model
     * @return the path
     * @author :yanlixiong
     * @date :2021-11-15 14:03:04
     */
    public static String getPath(String prefix, String model, boolean isMkdir) {
        StringBuffer sb = new StringBuffer(prefix);
        sb.append(File.separator);
        sb.append(model);
        sb.append(File.separator);
        sb.append(DateUtils.getYear());
        sb.append(File.separator);
        sb.append(DateUtils.getMonth());
        sb.append(DateUtils.getDay());
        sb.append(File.separator);
        sb.append(IdentitiesUtils.uuid2());
        sb.append(File.separator);
        if (isMkdir) {
            mkdir(sb.toString());
        }
        return sb.toString();
    }

    public static String getPath(String model) {
        return getPath("", model, false);
    }

    public static String getFileSize(long size) {
        //如果字节数少于1024，则直接以B为单位，否则先除于1024，后3位因太少无意义
        if (size < 1024) {
            return size + "B";
        } else {
            size = size / 1024;
        }
        //如果原字节数除于1024之后，少于1024，则可以直接以KB作为单位
        //因为还没有到达要使用另一个单位的时候
        //接下去以此类推
        if (size < 1024) {
            return size + "KB";
        } else {
            size = size / 1024;
        }
        if (size < 1024) {
            //因为如果以MB为单位的话，要保留最后1位小数，
            //因此，把此数乘以100之后再取余
            size = size * 100;
            return (size / 100) + "." + (size % 100) + "MB";
        } else {
            //否则如果要以GB为单位的，先除于1024再作同样的处理
            size = size * 100 / 1024;
            return (size / 100) + "." + (size % 100) + "GB";
        }
    }

    public static void mkdir(String filePath) {
        File file = new File(filePath);
        if (!file.exists()) {
            file.mkdirs();
        }
    }

    public static void main(String[] args) {
        long size = new File("D:\\home\\upload-mbxq\\img\\XX港口.png").length();
        System.out.println(getFileSize(size));
    }
}
